<html>
    <head>
        <title> nvue适用场景</title>
    </head>
    <body>
        <script>
              /*
                        二、适用场景

                                nvue的组件和 API写法与 vue 页面一致，器内置组件还比 vue 页面内置组件增加了许多，
                                
                                详见： https://uniapp.dcloud.net.cn/component/list.html

                                如果你属性week 或 reac native 开发，那么nvue是你的更有选择，能切实提升你的开发效率，降低成本 。

                                如果你是web前端，不熟悉原生排版，那么建议你仍然使用vue页面为主，在App端某些vue页面表现不佳的场景下使用nvue作为强化补充。

                                这些场景如下：

                                                    ①、需要高性能的区域长列表或瀑布流滚动。

                                                            webview 的页面级长列表滚动是没有性能问题的（就是滚动条覆盖 webview 整体高度），
                                                            
                                                            但页面中某个区域做长列表滚动，则需要使用 nvue 的list、recycle-list、waterfall等组件(详见)。
                                                            
                                                            这些组件的性能要高于 vue 页面里的区域滚动组件scroll-view。

                                                    ②、复杂高性能的自定义下拉刷新

                                                            uni-app 的 pages.json 里可以配置原生下拉刷新，但引擎内置的下拉刷新样式只有雪花和 circle 圈 2 种样式。

                                                            如果你需要自己做复杂的下拉刷新，推荐使用 nvue 的 refresh 组件。

                                                            当然插件市场里也有很多 vue 下的自定义下拉刷新插件，只要是基于 renderjs 或 wxs 的，性能也可以商用，只是没有 nvue 的refresh组件更极致。

                                                    ③、左右拖动的长列表。

                                                            在 webview 里，通过swiper+scroll-view实现左右拖动的长列表，前端模拟下拉刷新，这套方案的性能不好。

                                                            此时推荐使用 nvue，比如新建 uni-app 项目时的新闻示例模板，就采用了 nvue，切换很流畅。

                                                    ④、实现区域滚动长列表+左右拖动列表+吸顶的复杂排版效果，效果可以才考 hello uni-app 模板里的 swiper-list 。  
                                                    
                                                            详见：https://ext.dcloud.net.cn/plugin?id=2128

                                                    ⑤、如需要将软键盘右下角按钮文字改为“发送”，则需要使用 nvue。

                                                            比如聊天场景，除了软键盘右下角的按钮文字处理外，还设计连天记录区域长列表滚动，适合 nuve来做。

                                                    ⑥、解决前端控件无法覆盖原生控件的层级问题。

                                                            当你使用map、video、live-pusher等原生组件时，会发现前端写的view等组件无法覆盖原生组件，

                                                            层级问题处理比较麻烦，此时使用 nvue 更好。

                                                            或者在 vue 页面上也可以覆盖一个 subnvue（一种非全屏的 nvue 页面覆盖在 webview 上），以解决 App 上的原生控件层级问题。

                                                            详见： https://uniapp.dcloud.net.cn/component/native-component.html


                                                    ⑦、如深度使用map组件，建议使用 nvue。

                                                            除了层级问题，App端 nvue 文件的 map功能更完善，和小程序拉齐度更高，多端一致性更好。

                                                    ⑧、如深度使用video,建议使用nvue.

                                                            比如如下2个场景：  

                                                                1、video 内嵌到 swiper 中，以实现抖音式视频滑动切换，例子见插件市场： https://ext.dcloud.net.cn/search?q=%E4%BB%BF%E6%8A%96%E9%9F%B3

                                                                2、nvue 的视频全屏后，通过cover-view实现内容覆盖，比如增加文字标题、分享按钮。

                                                    ⑨、直播推流： nvue下有 live-pusher 组件，和小程序对齐，功能更完善，也咩有层级问题。

                                                    ⑩、对 App 启动速度要求极致化。

                                                                App 端如果首页使用 nvue 且在 manifest 里配置 fast 模式，那么 App 的启动速度可以控制在 1 秒左右。
                                                                
                                                                而使用 vue 页面的话，App 的启动速度一般是 3 秒起，取决于你的代码性能和体积。


                                但是要注意，某些场景下 nvue 不如vue页面，如下：

                                        1、canvas  

                                                nvue 的 canvas 性能不高，尤其是 Android App 平台，所以这个组件干脆没有内置，而是需要单独引入。

                                                操作 canvas 动画，最高性能的方式是使用 vue 页面的 renderjs 技术，在 hello uni-app 里的 canvas 示例就是如此。

                                        2、动态横竖屏。

                                               nvue页面的css不支持媒体查询，所以横竖屏动态切换、动态适配屏幕是很困难的。

                    */
        </script>
    </body>
</html>